A storage system is a computer that provides storage service relating to the organization of information on writable persistent storage devices, such as memories, tapes or disks. The storage system is commonly deployed within a storage area network (SAN) or a network attached storage (NAS) environment. When used within a NAS environment, the storage system may be embodied as a file server including an operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g. the disks. Each “on-disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
The file server, or filer, may be further configured to operate according to a client/server model of information delivery to thereby allow many client systems (clients) to access shared resources, such as files, stored on the filer. Sharing of files is a hallmark of a NAS system, which is enabled because of its semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the filer. The clients typically communicate with the filer by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
In the client/server model, the client may comprise an application executing on a computer that “connects” to the filer over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the filer by issuing file system protocol messages (in the form of packets) to the file system over the network identifying one or more files to be accessed without regard to specific locations, e.g., blocks, in which the data are stored on disk. By supporting a plurality of file system protocols, such as the conventional Common Internet File System (CIFS), the Network File System (NFS) and the Direct Access File System (DAFS) protocols, the utility of the filer may be enhanced for networking clients.
A SAN is a high-speed network that enables establishment of direct connections between a storage system and its storage devices. The SAN may thus be viewed as an extension to a storage bus and, as such, an operating system of the storage system enables access to stored information using block-based access protocols over the “extended bus”. In this context, the extended bus is typically embodied as Fibre Channel (FC) or Ethernet media adapted to operate with block access protocols, such as Small Computer Systems Interface (SCSI) protocol encapsulation over FC or TCP/IP/Ethernet.
A SAN arrangement or deployment allows decoupling of storage from the storage system, such as an application server, and some level of information storage sharing at the application server level. There are, however, environments wherein a SAN is dedicated to a single server. In some SAN deployments, the information is organized in the form of databases, while in others a file-based organization is employed. Where the information is organized as files, the client requesting the information maintains file mappings and manages file semantics, while its requests (and server responses) address the information in terms of block addressing on disk using, e.g., a logical unit number (lun).
Some SAN arrangements utilize storage appliances that implement virtual disks (vdisks), which are encapsulated data containers stored within a file system. An example of such a storage appliance is described in U.S. patent application Ser. No. 10/215,917, entitled MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS, by Brian Pawlowski, et al., the contents of which are hereby incorporated by reference. Similarly, vdisks are described in U.S. patent application Ser. No. 10/216,453, entitled STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OBJECTS ON A FILE SYSTEM, by Vijayan Rajan, et al., the contents of which are hereby incorporated by reference.
In implementations using vdisks, an underlying file system storing the vdisks often has additional data integrity and/or backup features. For example, the Write Anywhere File Layout (WAFL) file system available from Network Appliance, Inc., of Sunnyvale, Calif., permits snapshots to be generated of a file system containing a vdisk. Snapshots are further described in TR3002 File System Design for an NFS File Server Appliance, by David Hitz et al., published by Network Appliance, Inc. and in U.S. Pat. No. 5,819,292 entitled METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING AN USER-ACCESSABLE READ-ONLY COPIES OF A FILE SYSTEM, by David Hitz et al., which are hereby incorporated by reference.
“Snapshot” is a trademark of Network Appliance, Inc. It is used for purposes of this patent to designate a persistent consistency point (CP) image. A persistent consistency point image (PCPI) is a point-in-time representation of the storage system, and more particularly, of the active file system, stored on a storage device (e.g., on disk) or another persistent memory and having a name or other identifier that distinguishes it from other PCPIs taken at other points-in-time. A PCPI can also include other information (metadata) about the active file system at the particular point-in-time for which the image is taken. The terms “PCPI” and “snapshot” shall be used interchangeably throughout this patent without abrogation of Network Appliance's trademark rights.
Specifically, a snapshot is a restorable version of the file system created at a pre-determined point-in-time. Snapshots are generally created on some user-defined regular schedule. The snapshot is stored on-disk along with the active file system, and is called into a buffer cache of the storage appliance as requested by a storage operating system. In known embodiments of file systems containing snapshots, clients may utilize a remote procedure call (RPC) to instruct the file system to generate a snapshot of a given volume or file. To generate a snapshot via RPC, the client must be able to identify the storage appliance, its network address, the volume and the file (or vdisk) that is to be snapshotted. When using NAS-based protocols, the client can easily generate the required information from the use of file handles and other NAS-specific data structures. However, a noted disadvantage of a client of a multi-protocol storage appliance that utilizes SAN networking protocols, such as SCSI, is that the vdisk appears as a lun to the client. Thus, the client cannot identify the multi-protocol storage appliance and/or the volume containing a given vdisk. The client may desire such information in order to utilize the storage appliance's data integrity or backup functionality with regards to the active file system, for example by generating a snapshot of the file system storing the vdisk.
Therefore, it is an object of the present invention to provide a system and method for a client to identify the location and storage appliance associated with a vdisk.